/* Main program for account */


#include bob:string.hidden
#include <Acc$Dir>.def

#define enough 6

main()
{
 account_no = 0;
 client = newvector(enough);        /* 6 is big enough for Toy Town */
// print(""+12);                        /* clear screen  */
 banner();
 while ((i = input()) != "0")         /* Top level interaction loop */
 {
   switch (i)
   {
    case "1":                         /* Open an account */
      if (account_no<enough)
        new_account();
      else
         print("Sorry, no more accounts.\n");
      break;
    case "2":                        /* Make a withdrawal */
      if (account_no) withdraw();
      break;
    case "3":                        /* Get a statement */
      if (account_no) statement();
      break;
    case "4":                        /* Change password */
      if (account_no) change_password();
      break;
    default:
      print("Sorry. Did not understand.\n");
      break;
    }
    banner();
 }
 print("Goodbye.\n");
}
      
banner()
{
 print("\nWelcome to the Toy Town Bank.\n");
 print("\n   0 Quit\n");
 print("   1 Open an account\n");
 print("   2 Make a withdrawal or deposit\n");
 print("   3 Get a statement\n");
 print("   4 Change your password\n\n");
 print("Press one of the above numbers then press RETURN.\n\n");
 print("Number :");
}

new_account()
{
 local name,amount;
 print("Enter your name: ");
 name = input();
 print("Enter the amount you wish to deposit: ");
 amount = val(input());
 client[account_no++] = new account(amount,name);
 print("Thank you for your custom , ",name,".\n");
}

withdraw()
{
 local the_account;
 if ((the_account = get_account())<account_no)
   {
   print("How much do you wish to withdraw? ");
   client[the_account]->withdraw(val(input()));
   }
}

statement()
{
 local the_account;
 if ((the_account = get_account())<account_no)
    client[the_account]->statement();
}

change_password()
{
 local the_account;
 if ((the_account = get_account())<account_no)
    client[the_account]->change_password();
}

get_account()
{
 local name, the_account;
 the_account = 0;
 print("Enter your name: ");
 name = input();
 while ((the_account<account_no)
        && !(client[the_account]->has_owner(name)))
    the_account++;
 if (the_account>=account_no)
    print("We cannot find any account owned by ",name,".\n");
 return the_account;
}
